package yartiss.engine.simulation.io;

import java.io.IOException;

import yartiss.engine.simulation.system.ITask;
import yartiss.engine.simulation.system.schedulable.GraphTask;
import yartiss.engine.simulation.system.schedulable.SimpleTask;
import yartiss.engine.simulation.system.schedulable.SubTask;

/**
 * ITaskElementVisitor Interface is an interface of visitors to different types
 * of real-time tasks
 * 
 * @author Manar Qamhieh
 * 
 */
public interface ITaskElementVisitor {
	public void visitTaskset(ITask[] taskSet, int pr)
			throws IOException;

	void visitSimpleTask(SimpleTask task) throws IOException;

	void visitGraphTask(GraphTask graph);

	void visitSubTask(SubTask subTask);

	public void close();

}
